### Pacotes

library(openxlsx)
library(tidyverse)
library(lme4)
library(merTools)
library(gridExtra)
library(nlme)
library(lmerTest)
library(sjPlot)
library(texreg)
library(vtable)
library(corrplot)
library(data.table)

### An?lise Descritiva

udh_votos <- fread("eleicoes_poa_2006_2020_UDH.v4.csv")

#### Estat?sticas descritivas

names(udh_votos)
summary(udh_votos)
head(udh_votos, 5)

dat <- udh_votos %>% dplyr::select(PCT_PT_PREF_1996_1T, 
                            PCT_PT_PREF_2000_1T,
                            PCT_PT_PREF_2000_2T,
                            PCT_PT_PREF_2004_1T,
                            PCT_PT_PREF_2004_2T,
                            PCT_PT_PREF_2008_1T,
                            PCT_PT_PREF_2008_2T,
                            PCT_PT_PREF_2012_1T,
                            PCT_PT_PREF_2016_1T,
                            PCT_PT_PRES_1998_1T, 
                            PCT_PT_PRES_2002_1T,
                            PCT_PT_PRES_2002_2T,
                            PCT_PT_PRES_2006_1T,
                            PCT_PT_PRES_2006_2T,
                            PCT_PT_PRES_2010_1T,
                            PCT_PT_PRES_2010_2T,
                            PCT_PT_PRES_2014_1T,
                            PCT_PT_PRES_2014_2T,
                            PCT_PT_PRES_2018_1T,
                            PCT_PT_PRES_2018_2T,
                            PCT_PT_GOV_1998_1T,
                            PCT_PT_GOV_1998_2T,
                            PCT_PT_GOV_2002_1T,
                            PCT_PT_GOV_2002_2T,
                            PCT_PT_GOV_2006_1T,
                            PCT_PT_GOV_2006_2T,
                            PCT_PT_GOV_2010_1T,
                            PCT_PT_GOV_2014_1T,
                            PCT_PT_GOV_2014_2T,
                            PCT_PT_GOV_2018_1T,
                            ensino_fund_incompleto_1998,
                            ensino_fund_incompleto_2002,
                            ensino_fund_incompleto_2006,
                            ensino_fund_incompleto_2008,
                            ensino_fund_incompleto_2010,
                            ensino_fund_incompleto_2012,
                            ensino_fund_incompleto_2014,
                            ensino_fund_incompleto_2016,
                            ensino_fund_incompleto_2018,
                            ivs_2000,
                            ivs_2010,
                            ivs_mean
) 

st(dat)

summary(dat)

dat_N <- dat %>% dplyr::select(ensino_fund_incompleto_1998,
                               ensino_fund_incompleto_2002,
                               ensino_fund_incompleto_2006,
                               ensino_fund_incompleto_2008,
                               ensino_fund_incompleto_2010,
                               ensino_fund_incompleto_2012,
                               ensino_fund_incompleto_2014,
                               ensino_fund_incompleto_2016,
                               ensino_fund_incompleto_2018)

dat_2 <- na.omit(dat_N)

corrplot(cor(dat_2),
         method = "number",
         type = "lower" # show only upper side
)

corrplot(cor(dat_2),
         method = "number",
         type = "lower",
         diag = FALSE # n?o exibir valores na diagonal
)



### Regressao 1

#### Modelos por cargo

udh_votos <- fread("eleicoes_poa_1996_2020_UDH_v6_Escolaridade.csv")

names(udh_votos)

### Prefeito 96 (1) + 00 (1 e 2) + 04 (1 e 2) + 08 (1 e 2) + 12 (1) + 16 (1)

### Coloquei as vari?veis com nomes diferentes para rodar o gr?fico

#### 1996

udh_votos$urna_1996 <- udh_votos$ensino_fund_incompleto_1998

summary(udh_votos$urna_1996)

hist(udh_votos$urna_1996)

pt_1996_pre <- lm(PCT_PT_PREF_1996_1T ~ urna_1996, data = udh_votos)

summary(pt_1996_pre)

### 2000 1? Turno

udh_votos$urna_2000 <- udh_votos$ensino_fund_incompleto_1998

summary(udh_votos$urna_2000)

hist(udh_votos$urna_2000)

pt_2000_pre <- lm(PCT_PT_PREF_2000_1T ~ urna_2000, data = udh_votos)

summary(pt_2000_pre)

### 2000 2? Turno

udh_votos$urna_2000_II <- udh_votos$ensino_fund_incompleto_1998

pt_2000_pre_II <- lm(PCT_PT_PREF_2000_2T ~ urna_2000_II, data = udh_votos)

summary(pt_2000_pre_II)

### 2004 1? Turno

udh_votos$urna_2004 <- udh_votos$ensino_fund_incompleto_2002

pt_2004_pre <- lm(PCT_PT_PREF_2004_1T ~ urna_2004, data = udh_votos)

summary(pt_2004_pre)

### 2004 2? Turno

udh_votos$urna_2004_II <- udh_votos$ensino_fund_incompleto_2002

pt_2004_pre_II <- lm(PCT_PT_PREF_2004_2T ~ urna_2004_II, data = udh_votos)

summary(pt_2004_pre_II)

#### 2008 1? Turno

udh_votos$urna_2008 <- ((udh_votos$analfabeto2008 + udh_votos$le_escreve2008 + 
                           udh_votos$ens_fund_incompleto2008)/
                          udh_votos$escolaridade_total2008)*100

pt_2008_pre <- lm(PCT_PT_PREF_2008_1T ~ urna_2008, data = udh_votos)

summary(pt_2008_pre)

#### 2008 2? Turno

udh_votos$urna_2008_II <- ((udh_votos$analfabeto2008 + udh_votos$le_escreve2008 + 
                              udh_votos$ens_fund_incompleto2008)/
                             udh_votos$escolaridade_total2008)*100

pt_2008_pre_II <- lm(PCT_PT_PREF_2008_2T ~ urna_2008_II, data = udh_votos)

summary(pt_2008_pre_II)

### 2012

udh_votos$urna_2012 <- ((udh_votos$analfabeto2012 + udh_votos$le_escreve2012 + 
                           udh_votos$ens_fund_incompleto2012)/
                          udh_votos$escolaridade_total2012)*100

pt_2012_pre <- lm(PCT_PT_PREF_2012_1T ~ urna_2012, data = udh_votos)

summary(pt_2012_pre)

#### 2016

names(udh_votos)

udh_votos$urna_2016 <- ((udh_votos$analfabeto2016 + udh_votos$le_escreve2016 + 
                           udh_votos$ens_fund_incompleto2016)/
                          udh_votos$escolaridade_total2016)*100

pt_2016_pre <- lm(PCT_PT_PREF_2016_1T ~ urna_2016, data = udh_votos)

summary(pt_2016_pre)

#### Gr?ficos 

### Correla??o

dat <- udh_votos %>% dplyr::select(PCT_PT_PREF_1996_1T, PCT_PT_PREF_2000_1T,
                            PCT_PT_PREF_2004_1T,
                            PCT_PT_PREF_2008_1T,
                            PCT_PT_PREF_2012_1T, PCT_PT_PREF_2016_1T)

dat_2 <- na.omit(dat)

corrplot(cor(dat_2),
         method = "number",
         type = "lower" # show only upper side
)

### Regress?o

library(dotwhisker)

dwplot(list(pt_1996_pre, pt_2000_pre,
            pt_2004_pre, pt_2008_pre,
            pt_2012_pre, 
            pt_2016_pre),
       vline = geom_vline(xintercept = 0, colour = "grey60", linetype = 3)) %>% 
  relabel_predictors(c(urna_1996 = "Pref (96) 1",                       
                       urna_2000 = "Pref (00) 1", 
                       urna_2004 = "Pref (04) 1",
                       urna_2008 = "Pref (08) 1",
                       urna_2012 = "Pref (12) 1",
                       urna_2016 = "Pref (16) 1"
  )) +
  theme_bw() + xlab("Estimativa dos Coeficientes") + ylab("") +
  geom_vline(xintercept = 0, colour = "grey60", linetype = 2) +
  ggtitle("% Voto PT e % Ensino Fundamental Incompleto (Urna)") +
  theme(plot.title = element_text(face="bold"),
        legend.position = c(-10.0, -11.100),
        legend.justification = c(0, 0), 
        legend.background = element_rect(colour="grey80"),
        legend.title = element_blank()) 

#### Exportar

htmlreg(list(pt_1996_pre, pt_2000_pre,
             pt_2004_pre, pt_2008_pre,
             pt_2012_pre, 
             pt_2016_pre),
        file = "urna_tempo_pref.doc",
        inline.css = FALSE,
        doctype = TRUE,
        html.tag = TRUE,
        head.tag = TRUE,
        body.tag = TRUE)

### Presidente 98 (1) + 02 (1 e 2) + 06 (1 e 2) + 10 (1 e 2) + 14 (1 e 2) + 18 (1 e 2)


summary(udh_votos)

prefeito <- read.xlsx("eleicoes_poa_1996_2020_UDH_v7 Banco Emparelhado.xlsx", sheet = "Prefeito")

summary(prefeito)

prefeito <- prefeito %>%
  mutate(chegada_poder = if_else(Ano >= 2008, 1, 0))

modelo_interagido <- lm(PCT_PT_PREF_1T ~ ensino_fund_incompleto*chegada_poder, data = prefeito)

summary(modelo_interagido)

library(interactions)

# Gerando o gráfico de interação com títulos personalizados nos eixos
interact_plot(modelo_interagido, pred = ensino_fund_incompleto, modx = chegada_poder,
              plot.points = TRUE, interval = TRUE, int.width = 0.95,
              x.label = "Ensino Fundamental Incompleto (%)", 
              y.label = "Votos Candidato Prefeitura (%)")



### Coloquei as vari?veis com nomes diferentes para rodar o gr?fico

#### 1998

udh_votos$urna_1998 <- udh_votos$ensino_fund_incompleto_1998

pt_1998_pre <- lm(PCT_PT_PRES_1998_1T ~ urna_1998, data = udh_votos)

summary(pt_1998_pre)

### 2002 1? Turno

udh_votos$urna_2002 <- udh_votos$ensino_fund_incompleto_2002

pt_2002_pre <- lm(PCT_PT_PRES_2002_1T ~ urna_2002, data = udh_votos)

summary(pt_2002_pre)

### 2002 2? Turno

udh_votos$urna_2002_II <- udh_votos$ensino_fund_incompleto_2002

pt_2002_pre_II <- lm(PCT_PT_PRES_2002_2T ~ urna_2002_II, data = udh_votos)

summary(pt_2002_pre_II)

### 2006 1? Turno

udh_votos$urna_2006 <- ((udh_votos$analfabeto2006 + udh_votos$le_escreve2006 + 
                           udh_votos$ens_fund_incompleto2006)/
                          udh_votos$total_escolaridade2006)*100

pt_2006_pre <- lm(PCT_PT_PRES_2006_1T ~ urna_2006, data = udh_votos)

summary(pt_2006_pre)

### 2006 2? Turno

udh_votos$urna_2006_II <- ((udh_votos$analfabeto2006 + udh_votos$le_escreve2006 + 
                              udh_votos$ens_fund_incompleto2006)/
                             udh_votos$total_escolaridade2006)*100

pt_2006_pre_II <- lm(PCT_PT_PRES_2006_2T ~ urna_2006_II, data = udh_votos)

summary(pt_2006_pre_II)

#### 2010 1? Turno

udh_votos$urna_2010 <- ((udh_votos$analfabeto2010 + udh_votos$le_escreve2010 + 
                           udh_votos$ens_fund_incompleto2010)/
                          udh_votos$escolaridade_total2010)*100

pt_2010_pre <- lm(PCT_PT_PRES_2010_1T ~ urna_2010, data = udh_votos)

summary(pt_2010_pre)

#### 2010 2? Turno

udh_votos$urna_2010_II <- ((udh_votos$analfabeto2010 + udh_votos$le_escreve2010 + 
                              udh_votos$ens_fund_incompleto2010)/
                             udh_votos$escolaridade_total2010)*100

pt_2010_pre_II <- lm(PCT_PT_PRES_2010_2T ~ urna_2010_II, data = udh_votos)

summary(pt_2010_pre_II)


### 2014 1? Turno

udh_votos$urna_2014 <- ((udh_votos$analfabeto2014 + udh_votos$le_escreve2014 + 
                           udh_votos$ens_fund_incompleto2014)/
                          udh_votos$escolaridade_total2014)*100

pt_2014_pre <- lm(PCT_PT_PRES_2014_1T ~ urna_2014, data = udh_votos)

summary(pt_2014_pre)

#### 2014 2? Turno

udh_votos$urna_2014_II <- ((udh_votos$analfabeto2014 + udh_votos$le_escreve2014 + 
                              udh_votos$ens_fund_incompleto2014)/
                             udh_votos$escolaridade_total2014)*100

pt_2014_pre_II <- lm(PCT_PT_PRES_2014_2T ~ urna_2014_II, data = udh_votos)

summary(pt_2014_pre_II)

#### 2018 1? Turno

udh_votos$urna_2018 <- ((udh_votos$analfabeto2018 + udh_votos$le_escreve2018 + 
                           udh_votos$ens_fund_incompleto2018)/
                          udh_votos$escolaridade_total2018)*100

pt_2018_pre <- lm(PCT_PT_PRES_2018_1T ~ urna_2018, data = udh_votos)

summary(pt_2018_pre)

### 2018 2? Turno

udh_votos$urna_2018_II <- ((udh_votos$analfabeto2018 + udh_votos$le_escreve2018 + 
                              udh_votos$ens_fund_incompleto2018)/
                             udh_votos$escolaridade_total2018)*100

pt_2018_pre_II <- lm(PCT_PT_PRES_2018_2T ~ urna_2018_II, data = udh_votos)

summary(pt_2018_pre_II)


#### Gr?ficos 

### Correla??o

dat <- udh_votos %>% dplyr::select(PCT_PT_PRES_1998_1T, PCT_PT_PRES_2002_1T,
                            PCT_PT_PRES_2006_1T,
                            PCT_PT_PRES_2010_1T,
                            PCT_PT_PRES_2014_1T, 
                            PCT_PT_PRES_2018_1T)

dat_2 <- na.omit(dat)

corrplot(cor(dat_2),
         method = "number",
         type = "lower" # show only upper side
)

### Regress?o

dwplot(list(pt_1998_pre, pt_2002_pre,
            pt_2006_pre, pt_2010_pre,
            pt_2014_pre, 
            pt_2018_pre),
       vline = geom_vline(xintercept = 0, colour = "grey60", linetype = 3)) %>% 
  relabel_predictors(c(urna_1998 = "Pres (98) 1",                       
                       urna_2002 = "Pres (02) 1", 
                       urna_2002_II = "Pres (02) 2", 
                       urna_2006 = "Pres (06) 1", 
                       urna_2006_II = "Pres (06) 2", 
                       urna_2010 = "Pres (10) 1",
                       urna_2010_II = "Pres (10) 2",
                       urna_2014 = "Pres (14) 1",
                       urna_2014_II = "Pres (14) 2",
                       urna_2018 = "Pres (18) 1",
                       urna_2018_II = "Pres (18) ?"
  )) +
  theme_bw() + xlab("Estimativa dos Coeficientes") + ylab("") +
  geom_vline(xintercept = 0, colour = "grey60", linetype = 2) +
  ggtitle("% Voto PT e % Ensino Fundamental Incompleto (Urna)") +
  theme(plot.title = element_text(face="bold"),
        legend.position = c(-10.0, -11.100),
        legend.justification = c(0, 0), 
        legend.background = element_rect(colour="grey80"),
        legend.title = element_blank()) 

library(jtools)

plot_summs(list(pt_1998_pre, pt_2002_pre,
                pt_2006_pre, pt_2010_pre,
                pt_2014_pre, 
                pt_2018_pre),
           scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)

#### Exportar

library(texreg)

htmlreg(list(pt_1998_pre, pt_2002_pre,
             pt_2006_pre, pt_2010_pre,
             pt_2014_pre, 
             pt_2018_pre),
        file = "urna_tempo_pres.doc",
        inline.css = FALSE,
        doctype = TRUE,
        html.tag = TRUE,
        head.tag = TRUE,
        body.tag = TRUE)


### Interagido

presidente <- read.xlsx("eleicoes_poa_1996_2020_UDH_v7 Banco Emparelhado.xlsx", sheet = "Presidente")

summary(presidente)

presidente <- presidente %>%
  mutate(chegada_poder = if_else(Ano >= 2006, 1, 0))

modelo_interagido2 <- lm(PCT_PT_PRES_1T ~ ensino_fund_incompleto*chegada_poder, data = presidente)

summary(modelo_interagido2)



#### Governador 98 (1 e 2) + 02 (1 e 2) + 06 (1 e 2) + 10 (1) + 14 (1 e 2) + 18 (1)

### Coloquei as vari?veis com nomes diferentes para rodar o gr?fico

#### 1998 1? Turno

udh_votos$urna_1998 <- udh_votos$ensino_fund_incompleto_1998

pt_1998_gov <- lm(PCT_PT_GOV_1998_1T ~ urna_1998, data = udh_votos)

summary(pt_1998_gov)

#### 1998 2? Turno

udh_votos$urna_1998_II <- udh_votos$ensino_fund_incompleto_1998

pt_1998_gov_II <- lm(PCT_PT_GOV_1998_2T ~ urna_1998_II, data = udh_votos)

summary(pt_1998_gov_II)


### 2002 1? Turno

udh_votos$urna_2002 <- udh_votos$ensino_fund_incompleto_2002

pt_2002_gov <- lm(PCT_PT_GOV_2002_1T ~ urna_2002, data = udh_votos)

summary(pt_2002_pre)

### 2002 2? Turno

udh_votos$urna_2002_II <- udh_votos$ensino_fund_incompleto_2002

pt_2002_gov_II <- lm(PCT_PT_GOV_2002_2T ~ urna_2002_II, data = udh_votos)

summary(pt_2002_gov_II)

### 2006 1? Turno

udh_votos$urna_2006 <- ((udh_votos$analfabeto2006 + udh_votos$le_escreve2006 + 
                           udh_votos$ens_fund_incompleto2006)/
                          udh_votos$total_escolaridade2006)*100

pt_2006_gov <- lm(PCT_PT_GOV_2006_1T ~ urna_2006, data = udh_votos)

summary(pt_2006_gov)

### 2006 2? Turno

udh_votos$urna_2006_II <- ((udh_votos$analfabeto2006 + udh_votos$le_escreve2006 + 
                              udh_votos$ens_fund_incompleto2006)/
                             udh_votos$total_escolaridade2006)*100

pt_2006_gov_II <- lm(PCT_PT_GOV_2006_2T ~ urna_2006_II, data = udh_votos)

summary(pt_2006_gov_II)

#### 2010 1? Turno

udh_votos$urna_2010 <- ((udh_votos$analfabeto2010 + udh_votos$le_escreve2010 + 
                           udh_votos$ens_fund_incompleto2010)/
                          udh_votos$escolaridade_total2010)*100

pt_2010_gov <- lm(PCT_PT_GOV_2010_1T ~ urna_2010, data = udh_votos)

summary(pt_2010_pre)



### 2014 1? Turno

udh_votos$urna_2014 <- ((udh_votos$analfabeto2014 + udh_votos$le_escreve2014 + 
                           udh_votos$ens_fund_incompleto2014)/
                          udh_votos$escolaridade_total2014)*100

pt_2014_gov <- lm(PCT_PT_GOV_2014_1T ~ urna_2014, data = udh_votos)

summary(pt_2014_gov)

#### 2014 2? Turno

udh_votos$urna_2014_II <- ((udh_votos$analfabeto2014 + udh_votos$le_escreve2014 + 
                              udh_votos$ens_fund_incompleto2014)/
                             udh_votos$escolaridade_total2014)*100

pt_2014_gov_II <- lm(PCT_PT_GOV_2014_2T ~ urna_2014_II, data = udh_votos)

summary(pt_2014_gov_II)

#### 2018 1? Turno

udh_votos$urna_2018 <- ((udh_votos$analfabeto2018 + udh_votos$le_escreve2018 + 
                           udh_votos$ens_fund_incompleto2018)/
                          udh_votos$escolaridade_total2018)*100

pt_2018_gov <- lm(PCT_PT_GOV_2018_1T ~ urna_2018, data = udh_votos)

summary(pt_2018_gov)


#### Gr?ficos 

### Correla??o

dat <- udh_votos %>% dplyr:: select(PCT_PT_GOV_1998_1T,
                            PCT_PT_GOV_2002_1T,
                            PCT_PT_GOV_2006_1T,
                            PCT_PT_GOV_2010_1T,
                            PCT_PT_GOV_2014_1T, 
                            PCT_PT_GOV_2018_1T,
)

dat_2 <- na.omit(dat)

corrplot(cor(dat_2),
         method = "number",
         type = "lower" # show only upper side
)

### Regress?o

library(dotwhisker)

dwplot(list(pt_1998_gov, 
            pt_2002_gov,
            pt_2006_gov, pt_2010_gov,
            pt_2014_gov, 
            pt_2018_gov),
       vline = geom_vline(xintercept = 0, colour = "grey60", linetype = 3)) %>% 
  relabel_predictors(c(urna_1998 = "Gov (98) 1",
                       urna_1998_II = "Gov (98) 2",
                       urna_2002 = "Gov (02) 1", 
                       urna_2002_II = "Gov (02) 2", 
                       urna_2006 = "Gov (06) 1", 
                       urna_2006_II = "Gov (06) 2", 
                       urna_2010 = "Gov (10) 1",
                       urna_2014 = "Gov (14) 1",
                       urna_2014_II = "Gov (14) 2",
                       urna_2018 = "Gov (18) 1"
  )) +
  theme_bw() + xlab("Estimativa dos Coeficientes") + ylab("") +
  geom_vline(xintercept = 0, colour = "grey60", linetype = 2) +
  ggtitle("% Voto PT e % Ensino Fundamental Incompleto (Urna)") +
  theme(plot.title = element_text(face="bold"),
        legend.position = c(-10.0, -11.100),
        legend.justification = c(0, 0), 
        legend.background = element_rect(colour="grey80"),
        legend.title = element_blank()) 

#### Exportar

library(texreg)

htmlreg(list(pt_1998_gov, 
             pt_2002_gov,
             pt_2006_gov, pt_2010_gov,
             pt_2014_gov, 
             pt_2018_gov),
        file = "urna_tempo_gov.doc",
        inline.css = FALSE,
        doctype = TRUE,
        html.tag = TRUE,
        head.tag = TRUE,
        body.tag = TRUE)

### Interagido

governador <- read.xlsx("eleicoes_poa_1996_2020_UDH_v7 Banco Emparelhado.xlsx", sheet = "Governador")

summary(governador)

governador <- governador %>%
  mutate(chegada_poder = if_else(Ano >= 2006, 1, 0))

modelo_interagido3 <- lm(PCT_PT_GOV_1T ~ ensino_fund_incompleto*chegada_poder, data = governador)

summary(modelo_interagido3)


### Regressao 2 

### Modelos  multinivel

presidente <- read.xlsx("eleicoes_poa_1996_2020_UDH_v7 Banco Emparelhado.xlsx", sheet = "Presidente")

names(presidente)

summary(presidente)

str(presidente)

hist(presidente$PCT_PT_PRES_1T)

hist(presidente$ensino_fund_incompleto)

summary(presidente$PCT_1_ELEICAO_ANTERIOR)

presidente$ano_eleicao <- as.factor(presidente$Ano)

presidente$nome_udh <- as.factor(presidente$nome_udh)

presidente$UDH <- as.factor(presidente$UDH)


### Selecionar variáveis de interesse


presidente_c <- presidente %>% dplyr::select(UDH, nome_udh, Ano, PCT_PT_PRES_1T, ivs_media, ensino_fund_incompleto,
                                             total_escolaridade,
                                             NUM_SECAO, UDH)

### Banco limpo

presidente_NA <- na.omit(presidente_c)

### Modelos atualizados

m1 <- lmer(PCT_PT_PRES_1T ~ 1 + (1 | UDH) + (1 | Ano), data = presidente_NA)

summary(m1)

m2 <- lmer(PCT_PT_PRES_1T ~ ensino_fund_incompleto + (1 | UDH) + (1 | Ano), data = presidente_NA)

summary(m2)

m3 <- lmer(PCT_PT_PRES_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH) + (1 | Ano), data = presidente_NA)

summary(m3)


tab_model(list(m1, m2, m3))

models <- list(m1, m2, m3)

table_summary <- tab_model(models)

summary(table_summary)

### Gr?ficos


htmlreg(list(m1, m2, m3),
        file = "urna_tempo_presidente_m2.doc",
        inline.css = FALSE,
        doctype = TRUE,
        html.tag = TRUE,
        head.tag = TRUE,
        body.tag = TRUE)

### Interacao

library(emmeans)
library(interactions)
library(huxtable)

summary(presidente_NA$ivs_media)
summary(presidente_NA$ensino_fund_incompleto)

(mylist <- list(ivs_media=0.203, ensino_fund_incompleto = 27.98))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.100, ensino_fund_incompleto = 50.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.00, ensino_fund_incompleto = 100.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

effa <- mean(presidente_NA$ivs_media) + sd(presidente_NA$ivs_media)
eff <- mean(presidente_NA$ivs_media)
effb <- mean(presidente_NA$ivs_media) - sd(presidente_NA$ivs_media)


(mylist <- list(ensino_fund_incompleto=seq(0,100,by=5),ivs_media=c(effa,eff,effb)))


emmip(m3,ivs_media~ensino_fund_incompleto,at=mylist, CIs=TRUE)

sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, johnson_neyman = FALSE)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))
plot(ss)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))

as_huxtable(ss)

johnson_neyman(m3, pred = ensino_fund_incompleto, modx = ivs_media, alpha = .05)


### Governador

governador <- read.xlsx("eleicoes_poa_1996_2020_UDH_v7 Banco Emparelhado.xlsx", sheet = "Governador")

governador$ano_eleicao <- as.factor(governador$Ano)

governador$nome_udh <- as.factor(governador$nome_udh)

governador$UDH <- as.factor(governador$UDH)


### Selecionar variáveis de interesse


governador_c <- governador %>% dplyr::select(UDH, nome_udh, Ano, PCT_PT_GOV_1T, ivs_media, ensino_fund_incompleto,
                                             total_escolaridade,
                                             NUM_SECAO, UDH)

### Banco limpo

gov_NA <- na.omit(governador_c)



### Modelos atualizados

m1 <- lmer(PCT_PT_GOV_1T ~ 1 + (1 | UDH) + (1 | Ano), data = gov_NA)

summary(m1)

m2 <- lmer(PCT_PT_GOV_1T ~ ensino_fund_incompleto + (1 | UDH) + (1 | Ano), data = gov_NA)

summary(m2)

m3 <- lmer(PCT_PT_GOV_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH) + (1 | Ano), data = gov_NA)

summary(m3)


tab_model(list(m1, m2, m3))


### Exportar

htmlreg(list(m1, m2, m3),
        file = "urna_tempo_governador_m2.doc",
        inline.css = FALSE,
        doctype = TRUE,
        html.tag = TRUE,
        head.tag = TRUE,
        body.tag = TRUE)

### Interacao

library(emmeans)

summary(gov_NA$ivs_media)
summary(gov_NA$ensino_fund_incompleto)

(mylist <- list(ivs_media=0.203, ensino_fund_incompleto = 27.98))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.100, ensino_fund_incompleto = 50.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.00, ensino_fund_incompleto = 100.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

effa <- mean(gov_NA$ivs_media) + sd(gov_NA$ivs_media)
eff <- mean(gov_NA$ivs_media)
effb <- mean(gov_NA$ivs_media) - sd(gov_NA$ivs_media)


(mylist <- list(ensino_fund_incompleto=seq(0,100,by=5),ivs_media=c(effa,eff,effb)))


emmip(m3,ivs_media~ensino_fund_incompleto,at=mylist, CIs=TRUE)

sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, johnson_neyman = FALSE)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))
plot(ss)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))

as_huxtable(ss)

johnson_neyman(m3, pred = ensino_fund_incompleto, modx = ivs_media, alpha = .05)

### Prefeito

prefeito <- read.xlsx("eleicoes_poa_1996_2020_UDH_v7 Banco Emparelhado.xlsx", sheet = "Prefeito")

prefeito$ano_eleicao <- as.factor(prefeito$Ano)

prefeito$nome_udh <- as.factor(prefeito$nome_udh)

prefeito$UDH <- as.factor(prefeito$UDH)

summary(prefeito)

### Selecionar variáveis de interesse


prefeito_c <- prefeito %>% dplyr::select(UDH, nome_udh, Ano, PCT_PT_PREF_1T, ivs_media, ensino_fund_incompleto,
                                             NUM_SECAO, UDH)

### Banco limpo

pref_NA <- na.omit(prefeito_c)

### Modelos atualizados

m1 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH) + (1 | Ano), data = pref_NA)

summary(m1)

m2 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH) + (1 | Ano), data = pref_NA)

summary(m2)

m3 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH) + (1 | Ano), data = pref_NA)

summary(m3)


tab_model(list(m1, m2, m3))

m33 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH) + (1 | Ano), data = pref_NA)

summary(m33)

tab_model(list(m1, m2, m3 ,m33))

tab_model(m33)

### Exportar

htmlreg(list(m1, m2, m3),
        file = "urna_tempo_prefeito_m2.doc",
        inline.css = FALSE,
        doctype = TRUE,
        html.tag = TRUE,
        head.tag = TRUE,
        body.tag = TRUE)

### Interacao

summary(pref_NA$ivs_media)
summary(pref_NA$ensino_fund_incompleto)

(mylist <- list(ivs_media=0.201, ensino_fund_incompleto = 31.23))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.100, ensino_fund_incompleto = 50.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.00, ensino_fund_incompleto = 100.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

effa <- mean(pref_NA$ivs_media) + sd(pref_NA$ivs_media)
eff <- mean(pref_NA$ivs_media)
effb <- mean(pref_NA$ivs_media) - sd(pref_NA$ivs_media)


(mylist <- list(ensino_fund_incompleto=seq(0,100,by=5),ivs_media=c(effa,eff,effb)))


emmip(m3,ivs_media~ensino_fund_incompleto,at=mylist, CIs=TRUE)

sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, johnson_neyman = FALSE)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))
plot(ss)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))

as_huxtable(ss)

johnson_neyman(m3, pred = ensino_fund_incompleto, modx = ivs_media, alpha = .05)

### Excluir anos 2012 e 2016

pref_NA2 <- subset(pref_NA, c(pref_NA$Ano < 2012))

### Modelos atualizados

m1 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH) + (1 | Ano), data = pref_NA2)

summary(m1)

m2 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH) + (1 | Ano), data = pref_NA2)

summary(m2)

m3 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH) + (1 | Ano), data = pref_NA2)

summary(m3)


tab_model(list(m1, m2, m3))


m33 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH) + (1 | Ano), data = pref_NA2)

summary(m33)

tab_model(list(m1, m2, m3 ,m33))

tab_model(m33)

### Exportar

htmlreg(list(m1, m2, m3),
        file = "urna_tempo_prefeito_m22.doc",
        inline.css = FALSE,
        doctype = TRUE,
        html.tag = TRUE,
        head.tag = TRUE,
        body.tag = TRUE)

### Interacao

summary(pref_NA$ivs_media)
summary(pref_NA$ensino_fund_incompleto)

(mylist <- list(ivs_media=0.201, ensino_fund_incompleto = 31.23))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.100, ensino_fund_incompleto = 50.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

(mylist <- list(ivs_media=0.00, ensino_fund_incompleto = 100.00))

emmeans(m3, ~ ivs_media*ensino_fund_incompleto, at=mylist)

effa <- mean(pref_NA$ivs_media) + sd(pref_NA$ivs_media)
eff <- mean(pref_NA$ivs_media)
effb <- mean(pref_NA$ivs_media) - sd(pref_NA$ivs_media)


(mylist <- list(ensino_fund_incompleto=seq(0,100,by=5),ivs_media=c(effa,eff,effb)))


emmip(m3,ivs_media~ensino_fund_incompleto,at=mylist, CIs=TRUE)

sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, johnson_neyman = FALSE)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))
plot(ss)

ss <- sim_slopes(m3, pred = ensino_fund_incompleto, modx = ivs_media, 
                 modx.values = c(0.08, 0.20, 0.30))

as_huxtable(ss)

johnson_neyman(m3, pred = ensino_fund_incompleto, modx = ivs_media, alpha = .05)

### Robustez

### Por ano 

pref_96 <- subset(pref_NA, c(pref_NA$Ano == 1996))

### 1996

m196 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH), data = pref_96)

m296 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH), data = pref_96)

m396 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH), data = pref_96)

tab_model(list(m196, m296, m396))

m3396 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH), data = pref_96)

tab_model(list(m1, m2, m3 ,m3396))


### Por ano 

pref_16 <- subset(pref_NA, c(pref_NA$Ano == 2016))

### 2016

m116 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH), data = pref_16)

m216 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH), data = pref_16)

m316 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH), data = pref_16)

tab_model(list(m116, m216, m316))

m3396 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH), data = pref_96)

tab_model(list(m1, m2, m3 ,m3396))

### Por ano 

pref_00 <- subset(pref_NA, c(pref_NA$Ano == 2000))

### 2000

m100 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH), data = pref_00)

m200 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH), data = pref_00)

m300 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH), data = pref_00)

tab_model(list(m100, m200, m300))

m3300 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH), data = pref_00)

tab_model(list(m100, m200, m300 ,m3300))


### Por ano 

pref_12 <- subset(pref_NA, c(pref_NA$Ano == 2012))

### 2012

m112 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH), data = pref_12)

m212 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH), data = pref_12)

m312 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH), data = pref_12)

tab_model(list(m112, m212, m312))

m3312 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH), data = pref_12)

tab_model(list(m112, m212, m312 ,m3312))

### Avaliação parcial


tab_model(list(m396, m300, m312, m316))


### Por ano 

pref_04 <- subset(pref_NA, c(pref_NA$Ano == 2004))

### 2004

m104 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH), data = pref_04)

m204 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH), data = pref_04)

m304 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH), data = pref_04)

tab_model(list(m104, m204, m304))

m3304 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH), data = pref_04)

tab_model(list(m104, m204, m304 ,m3304))


### Por ano 

pref_08 <- subset(pref_NA, c(pref_NA$Ano == 2008))

### 2016

m108 <- lmer(PCT_PT_PREF_1T ~ 1 + (1 | UDH), data = pref_08)

m208 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + (1 | UDH), data = pref_08)

m308 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media + ensino_fund_incompleto*ivs_media +  (1 | UDH), data = pref_08)

tab_model(list(m108, m208, m308))

m3308 <- lmer(PCT_PT_PREF_1T ~ ensino_fund_incompleto + ivs_media +  (1 | UDH), data = pref_08)

tab_model(list(m108, m208, m308 ,m3308))

### Avaliação geral


tab_model(list(m396, m300, m304, m308, m312, m316))


### Criar Graficos da distribuicao temporal

names(presidente_NA)

ggplot(presidente_NA, aes(Ano, PCT_PT_PRES_1T, group = UDH)) +
  geom_line(alpha = 0.01) + # add individual line with transparency
  stat_summary( # add average line
    aes(group = 1),
    fun = mean,
    geom = "line",
    size = 1.5,
    color = "red"
  ) +
  theme_bw() + # nice theme
  labs(x = "Ano", y = "Votos PT Presidente (1 T)") # nice labels

ggplot(gov_NA, aes(Ano, PCT_PT_GOV_1T, group = UDH)) +
  geom_line(alpha = 0.01) + # add individual line with transparency
  stat_summary( # add average line
    aes(group = 1),
    fun = mean,
    geom = "line",
    size = 1.5,
    color = "red"
  ) +
  theme_bw() + # nice theme
  labs(x = "Ano", y = "Votos PT Governador (1 T)") # nice labels

ggplot(pref_NA, aes(Ano, PCT_PT_PREF_1T, group = UDH)) +
  geom_line(alpha = 0.01) + # add individual line with transparency
  stat_summary( # add average line
    aes(group = 1),
    fun = mean,
    geom = "line",
    size = 1.5,
    color = "red"
  ) +
  theme_bw() + # nice theme
  labs(x = "Ano", y = "Votos PT Prefeito (1 T)") # nice labels

ggplot(presidente_NA, aes(Ano, ensino_fund_incompleto, group = UDH)) +
  geom_line(alpha = 0.01) + # add individual line with transparency
  stat_summary( # add average line
    aes(group = 1),
    fun = mean,
    geom = "line",
    size = 1.5,
    color = "red"
  ) +
  theme_bw() + # nice theme
  labs(x = "Ano", y = "Ensino Fundamental Incompleto") # nice labels


### Correlacao prefeito e Gov

udh_votos <- fread("eleicoes_poa_2006_2020_UDH.v4.csv")

#### Estat?sticas descritivas

names(udh_votos)
summary(udh_votos)
head(udh_votos, 5)

dat <- udh_votos %>% dplyr::select(PCT_PT_PRES_1998_1T, 
                                   PCT_PT_PRES_2002_1T,
                                   PCT_PT_PRES_2006_1T,
                                   PCT_PT_PRES_2010_1T,
                                   PCT_PT_PRES_2014_1T,
                                   
                                   PCT_PT_PRES_2018_1T,
                                   
                                   PCT_PT_GOV_1998_1T,
                                   
                                   PCT_PT_GOV_2002_1T,
                                   
                                   PCT_PT_GOV_2006_1T,
                                   
                                   PCT_PT_GOV_2010_1T,
                                   PCT_PT_GOV_2014_1T,
                                   
                                   PCT_PT_GOV_2018_1T
) 

st(dat)

summary(dat)

dat_3 <- na.omit(dat)

corrplot(cor(dat_3),
         method = "number",
         type = "lower" # show only upper side
)

# Calcular a matriz de correla??o
cor_matrix <- cor(dat_3)

# Criar o gr?fico de correla??o com coeficientes mais vis?veis
corrplot(
  cor_matrix,
  method = "number",
  type = "lower",
  tl.cex = 0.7,   # Tamanho da fonte para r?tulos
  number.cex = 0.8, # Tamanho da fonte para n?meros
  tl.col = "black", # Cor dos r?tulos
  cl.pos = "n"     # N?o mostrar a barra de cores
)

